// 可行，作废保留
frappe.router.on("change", function () {
    // setup_form_shortcuts()
    setTimeout(() => {
        setup_form_shortcuts()
    }, 300) // 延迟确保DOM已渲染
})

// 监听页面加载完成
// frappe.ready(function() {
//     setup_form_shortcuts();
// });
let 上个frm = null
// 设置表单快捷键的主函数
function setup_form_shortcuts() {
    // console.log(`setup_form_shortcuts ing👇`)
    // console.log(`cur_frm 👉`, cur_frm)
    if (!cur_frm) return
    // console.log(`cur_frm.docname 👉`, cur_frm.docname)
    if (上个frm == cur_frm.docname) return
    上个frm = cur_frm.docname

    // const grid_add_buttons = document.querySelectorAll(".grid-add-row")
    const grid_add_buttons = cur_frm.$wrapper.find(".grid-add-row")

    if (grid_add_buttons.length) {
        // 移除之前的快捷键（避免重复注册）
        frappe.ui.keys.off("ctrl+d")
        // 注册新的快捷键
        let 按钮 = grid_add_buttons[0]
        const $button = $(按钮)
        if (!$button.data("tooltip")) {
            $button.attr("title", __("Ctrl+d"))
            $button.tooltip({
                delay: { show: 300, hide: 100 },
                trigger: "hover",
            })
        }
        frappe.ui.keys.on("ctrl+d", function () {
            // 触发第一个添加行按钮的点击事件
            按钮.click()
            // console.log("[快捷键] Ctrl+d 触发添加行")
            return false // 阻止默认行为
        })

        // 为添加行按钮添加Tooltip（使用原生title属性+插件）
        // grid_add_buttons.each(function(index, button) {
        //     const $button = $(button);
        //     if (!$button.data("tooltip")) {
        //         $button.attr("title", __("Ctrl+D 快捷键添加行"));
        //         $button.tooltip({
        //             delay: { show: 300, hide: 100 },
        //             trigger: "hover"
        //         });
        //     }
        // });
        console.log("[初始化] 已为当前表单注册 Ctrl+D 添加行快捷键")
    }
}

// 可行，作废保留👇
// // 保存原始ControlTable类
// const OriginalControlTable = frappe.ui.form.ControlTable

// // 创建包装类
// frappe.ui.form.ControlTable = class CustomControlTable extends OriginalControlTable {
//     make() {
//         // 调用父类的make方法创建Grid实例
//         super.make()

//         // 确保grid已创建
//         if (this.grid) {
//             // 保存原始方法引用
//             const originalSetFocusOnRow = this.grid.set_focus_on_row
//             let 原grid = this.grid
//             // 扩展set_focus_on_row方法
//             this.grid.set_focus_on_row = idx => {
//                 // 调用原始方法
//                 originalSetFocusOnRow.call(this.grid, idx)
//                 if (cur_frm.doctype != "Journal Entry") return
//                 console.log(`set_focus_on_row cur_frm 👉`, cur_frm)
//                 if (!idx && idx !== 0) {
//                     idx = 原grid.grid_rows.length - 1
//                 }
//                 console.log(`idx 👉`, idx)
//                 let row
//                 if (cur_frm.doctype == "Journal Entry") {
//                     row = 原grid.grid_rows[idx].row.find('[data-fieldname="account"]')
//                 } else {
//                     row = 原grid.grid_rows[idx].row.find(".grid-static-col")
//                 }
//                 console.log(`row 👉`, row)
//                 setTimeout(() => {
//                     row[0].click()
//                 }, 100)
//             }
//         }
//     }
// }
